package com.forum.entity.view;/*
 *
 *作者：张继成
 *任务：后端返回视图实体辅助类
 *
 *备注：
 *@Date2023/05/29/19:58
 ***/

import com.baomidou.mybatisplus.annotations.TableName;

import com.forum.entity.CourseorderEntity;
import org.apache.commons.beanutils.BeanUtils;

import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;

@TableName("courseorder")
public class CourseorderView extends CourseorderEntity implements Serializable {
    //因为默认生成的serialversionUID对class极其敏感，在反序列化的时候很容易抛出InvalidClassException异常。
    //所以自己定义一个
    private static final long serialVersionUID=1L;

    //定义无参构造方法
    public CourseorderView(){}

    public CourseorderView(CourseorderEntity kechengdingdanEntity){
        try {
            /*
            * BeanUtils.copyProperties会进行类型转换；
            * BeanUtils.copyProperties方法简单来说就是将两个字段相同的对象进行属性值的复制。
            * 如果 两个对象之间存在名称不相同的属性，则 BeanUtils 不对这些属性进行处理，需要程序手动处理。
            * 这两个类在不同的包下面，而这两个类的copyProperties()方法里面传递的参数赋值是相反的。
            * */
            //org.apache.commons.beanutils.BeanUtils:::::B拷贝到A
            BeanUtils.copyProperties(this,kechengdingdanEntity);
        }catch (IllegalAccessException | InvocationTargetException e){
            e.printStackTrace();
        }
    }
}
